/*
 *
 * Copyright (C) 2019 Zealcomm Inc. (https://www.zealcomm.com)
 *
*/
#ifndef IRTC_BASE_OBJC_IRTCMTLVIDEOVIEW_H_
#define IRTC_BASE_OBJC_IRTCMTLVIDEOVIEW_H_

#import <Foundation/Foundation.h>
#import <IRTC/IRTCMacros.h>
#import <IRTC/IRTCVideoRenderer.h>


NS_ASSUME_NONNULL_BEGIN

/**
 * IRTCMTLVideoView is thin wrapper around MTKView.
 *
 * It has id<IRTCVideoRenderer> property that renders video frames in the view's
 * bounds using Metal.
 */
NS_CLASS_AVAILABLE_IOS(9)

IRTC_OBJC_EXPORT
@interface IRTCMTLVideoView : UIView<IRTCVideoRenderer>

@property(nonatomic, weak) id<IRTCVideoViewDelegate> delegate;

@property(nonatomic) UIViewContentMode videoContentMode;

/** @abstract Enables/disables rendering.
 */
@property(nonatomic, getter=isEnabled) BOOL enabled;

/** @abstract Wrapped RTCVideoRotation, or nil.
 */
@property(nonatomic, nullable) NSValue* rotationOverride;

@end

NS_ASSUME_NONNULL_END
#endif // IRTC_BASE_OBJC_IRTCMTLVIDEOVIEW_H_